package com.shf.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shf.domain.ResponseResult;
import com.shf.domain.dto.AddArticleDto;
import com.shf.domain.dto.ArticleDto;
import com.shf.domain.entity.Article;
import com.shf.domain.vo.ArticleByIdVo;
import com.shf.domain.vo.PageVo;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 叶枫
 * @date 2023/10/25.
 * 文章业务接口
 */

public interface ArticleService extends IService<Article> {
    /**
     * 查询热门文章
     * @return
     */
    ResponseResult hotArticleList();

    /**
     * 分页查询文章
     * @param pageNum
     * @param pageSize
     * @param categoryId
     * @return
     */
    ResponseResult articleList(Integer pageNum, Integer pageSize, Long categoryId);

    /**
     * 展示文章详情
     * @param id
     * @return
     */
    ResponseResult getArticleDetail(Long id, HttpServletRequest request);

    /**
     * 更新文章浏览次数
     * @param id
     * @return
     */
    ResponseResult updateViewCount(Long id);

    /**
     * 新增博客文章
     * @param article
     * @return
     */
    ResponseResult add(AddArticleDto article);


    /**
     * 管理后台(文章管理)-分页查询文章*
     * @param article
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVo selectArticlePage(Article article, Integer pageNum, Integer pageSize);

    /**
     * 修改文章-①根据文章id查询对应的文章
     * @param id
     * @return
     */
    ArticleByIdVo getInfo(Long id);

    /**
     * /修改文章-②然后才是修改文章
     * @param article
     */
    void edit(ArticleDto article);
}
